package com.ruoyi.system.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

public class JiajiaTransferAccountsVo {

    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 打款用户Id */
    @Excel(name = "打款用户Id")
    private Long userId;

    /** 转账单号 */
    @Excel(name = "转账单号")
    private String transferBillNo;

    /** 商户内部订单号 */
    @Excel(name = "商户内部订单号")
    private String outBillNo;

    /** 转账金额 */
    @Excel(name = "转账金额")
    private BigDecimal transferAmount;

    /** 转账状态 */
    @Excel(name = "转账状态")
    private String state;

    /** 转账包 */
    @Excel(name = "转账包")
    private String packageInfo;

    /** 订单Id */
    @Excel(name = "订单Id")
    private Long orderId;

    /** 转账来源的用户ID */
    @Excel(name = "转账来源的用户ID")
    private Long sourceUserId;

    @Excel(name = "转账来源的用户ID")
    private String name;

    /** 1代理，2服务，3商城 */
    @Excel(name = "1代理，2服务，3商城")
    private String orderType;
    //用户收款状态1：用户未收款，2：用户点击收款，3：用户取消收款
    private String userStatus;
    private String  appId;
    private String  mchId;
    private String paymentChannels;

    /** 1：区代理收益
     2：小区代理收益
     3：推广小区收益
     4：推广推广员收益
     5：推广用户收益
     6：推广社工收益
     7：二级推广收益 */
    private String transferType;

    /** 简单分布式锁时间搓加随机数 */
    @Excel(name = "简单分布式锁时间搓加随机数")
    private String version;
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新者 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 备注 */
    private String remark;
    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setUserId(Long userId)
    {
        this.userId = userId;
    }

    public Long getUserId()
    {
        return userId;
    }
    public void setTransferBillNo(String transferBillNo)
    {
        this.transferBillNo = transferBillNo;
    }

    public String getTransferBillNo()
    {
        return transferBillNo;
    }
    public void setOutBillNo(String outBillNo)
    {
        this.outBillNo = outBillNo;
    }

    public String getOutBillNo()
    {
        return outBillNo;
    }

    public void setState(String state)
    {
        this.state = state;
    }

    public String getState()
    {
        return state;
    }
    public void setPackageInfo(String packageInfo)
    {
        this.packageInfo = packageInfo;
    }

    public String getPackageInfo()
    {
        return packageInfo;
    }
    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public String getAppId() {
        return appId;
    }

    public String getPaymentChannels() {
        return paymentChannels;
    }

    public void setPaymentChannels(String paymentChannels) {
        this.paymentChannels = paymentChannels;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getMchId() {
        return mchId;
    }

    public void setMchId(String mchId) {
        this.mchId = mchId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getOrderId()
    {
        return orderId;
    }
    public void setSourceUserId(Long sourceUserId)
    {
        this.sourceUserId = sourceUserId;
    }

    public String getUserStatus() {
        return userStatus;
    }

    public void setUserStatus(String userStatus) {
        this.userStatus = userStatus;
    }

    public Long getSourceUserId()
    {
        return sourceUserId;
    }
    public void setOrderType(String orderType)
    {
        this.orderType = orderType;
    }

    public String getOrderType()
    {
        return orderType;
    }
    public void setTransferType(String transferType)
    {
        this.transferType = transferType;
    }

    public String getTransferType()
    {
        return transferType;
    }
    public void setVersion(String version)
    {
        this.version = version;
    }

    public String getVersion()
    {
        return version;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("transferBillNo", getTransferBillNo())
                .append("createTime", getCreateTime())
                .append("outBillNo", getOutBillNo())
                .append("transferAmount", getTransferAmount())
                .append("state", getState())
                .append("packageInfo", getPackageInfo())
                .append("orderId", getOrderId())
                .append("sourceUserId", getSourceUserId())
                .append("orderType", getOrderType())
                .append("transferType", getTransferType())
                .append("remark", getRemark())
                .append("version", getVersion())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateBy() {
        return updateBy;
    }

    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public BigDecimal getTransferAmount() {
        return transferAmount;
    }

    public void setTransferAmount(BigDecimal transferAmount) {
        this.transferAmount = transferAmount;
    }



}
